'''
正则表达式：元字符

1. 匹配单个字符
    [0-9]   \d   数字   \D    非单个数字 
    [a-z]   \w   字母   \W    非单个字母
    [[:space:]] \s   空白字符 \S 非空白字符

2.匹配次数
    *   匹配0个或多个
    +   匹配1个或多个
    ?   匹配0个或1个
    {n}   匹配n个
    {n,}   匹配n个以上
    {n,m}   匹配n到m个

3.匹配字符出现位置
    ^   匹配字符串开头
    $   匹配字符串结尾


'''

'''
 正则表达模块 re
 import re
 
 
'''

test_str = "哈喽 world"
import re
# search() 相当于 grep
# 过滤数据，能过滤到数据返回匹配对象 过滤不到返回None
ip = r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
is_match = re.search(r"[a-z]+", test_str) 
print(is_match)
access_log = r"E:\python\test\实例\access_log"
# 获取匹配对象中的内容 group()
print(is_match.group())
count = {}
with open(access_log, mode="r") as job:
    for line in job:
        is_match = re.search(ip, line)
        if is_match:
            clint_ip = is_match.group()
            if clint_ip in count:    
                count[clint_ip] += 1
            else: 
                count[clint_ip] = 1
    for ip,number in count.items():
        print("客户端地址： %s   访问次数： %s" % (ip, number))            